from django.contrib.auth import get_user_model
from ipware import get_client_ip


class LastLoginMiddleware:
    """
    每次查询到登陆状态时，更新last_active_ip
    目前暂不使用，在使用Login接口时更新IP
    """

    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        return self.get_response(request)

    def process_request(self, request):
        if request.user.is_authenticated():
            ip_addr, _ = get_client_ip()
            if ip_addr:
                get_user_model().objects.filter(pk=request.user.pk).update(last_active_ip=ip_addr)
